{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 监督学习"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1、样本数据集\n",
    "> `forge`拥有26个数据点和2个特征\n",
    "- 二分类数据集（forge数据集）\n",
    "- 拥有两个特征"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "X.shape (26, 2), y.shape (26,)\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import mglearn\n",
    "import matplotlib.pyplot as plt\n",
    "import mglearn.datasets\n",
    "\n",
    "# 生成数据\n",
    "X, y = mglearn.datasets.make_forge()\n",
    "# print(f\"X={X}, y={y}\")\n",
    "# 绘制图形\n",
    "mglearn.discrete_scatter(X[:, 0], X[:, 1], y)\n",
    "plt.legend([\"Class 0\", \"Class 1\"], loc=4)\n",
    "plt.xlabel(\"First feature\")\n",
    "plt.ylabel(\"Second feature\")\n",
    "print(f\"X.shape {X.shape}, y.shape {y.shape}\")\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
